﻿<!DOCTYPE html>
<html lang="en">
<head>
    <title id="Description">This sample demonstrates how we can customize the rendering of the TreeGrid's Column Header.</title>
    <meta name="description" content="This sample demonstrates how we can customize the rendering of the Column Header - JavaScript Tree Grid Demo | jQWidgets">  
    <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
    <script type="text/javascript" src="../../scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxdatatable.js"></script>
    <script type="text/javascript" src="../../jqwidgets/jqxtreegrid.js"></script>
    <script type="text/javascript" src="../../scripts/demos.js"></script>
    <style>
        .jqx-tree-grid-icon, .jqx-tree-grid-icon-size {
            width: 16px;
            height: 16px;
        }
    </style>
    <script type="text/javascript">
        $(document).ready(function () {
            var employees = [
                  {
                      "EmployeeID": 2, icon: '../../images/oldboss.png', "Name": "Andrew Fuller", "Country": "USA", "Title": "Vice President, Sales", "HireDate": "1992-08-14 00:00:00", "BirthDate": "1952-02-19 00:00:00", "expanded": "true",
                      children:
                      [
                          { "EmployeeID": 8, icon: '../../images/woman.png', "Name": "Laura Callahan", "Country": "Austria", "Title": "Inside Sales Coordinator", "HireDate": "1994-03-05 00:00:00", "BirthDate": "1958-01-09 00:00:00"},
                          { "EmployeeID": 1, icon: '../../images/woman.png', "Name": "Nancy Davolio", "Country": "Germany", "Title": "Sales Representative", "HireDate": "1992-05-01 00:00:00", "BirthDate": "1968-12-08 00:00:00"},
                          { "EmployeeID": 3, icon: '../../images/woman.png', "Name": "Janet Leverling", "Country": "USA", "Title": "Sales Representative", "HireDate": "1992-04-01 00:00:00", "BirthDate": "1963-08-30 00:00:00"},
                          { "EmployeeID": 4, icon: '../../images/woman.png', "Name": "Margaret Peacock", "Country": "Canada", "Title": "Sales Representative", "HireDate": "1993-05-03 00:00:00", "BirthDate": "1967-09-19 00:00:00" },
                          {
                              "EmployeeID": 5, icon: '../../images/boss.png', "Name": "Steven Buchanan", "Country": "UK", "Title": "Sales Manager", "HireDate": "1993-10-17 00:00:00", "BirthDate": "1955-03-04 00:00:00", "expanded": "true",
                              children:
                              [
                                    { "EmployeeID": 6, icon: '../../images/asian.png', "Name": "Michael Suyama", "Country": "UK", "Title": "Sales Representative", "HireDate": "1993-10-17 00:00:00", "BirthDate": "1963-07-02 00:00:00" },
                                    { "EmployeeID": 7, icon: '../../images/person.png', "Name": "Robert King", "Country": "UK", "Title": "Sales Representative", "HireDate": "1994-01-02 00:00:00", "BirthDate": "1960-05-29 00:00:00"},
                                    { "EmployeeID": 9, icon: '../../images/woman.png', "Name": "Anne Dodsworth", "Country": "UK", "Title": "Sales Representative", "HireDate": "1994-11-15 00:00:00", "BirthDate": "1966-01-27 00:00:00" }
                              ]
                          },
                          {
                              "EmployeeID": 10, icon: '../../images/asian.png', "Name": "Wei Zhang", "Country": "China", "Title": "Sales Manager", "HireDate": "1994-11-15 00:00:00", "BirthDate": "1954-02-03 00:00:00", "City": "London", "Address": "14 Garrett Hill",
                              children:
                              [
                                  { "EmployeeID": 11, icon: '../../images/person.png', "Name": "Michael Wei", "Country": "China", "Title": "Sales Representative", "HireDate": "1996-10-17 00:00:00", "BirthDate": "1973-07-02 00:00:00" },
                                  { "EmployeeID": 12, icon: '../../images/person.png', "Name": "Peter Han", "Country": "China", "Title": "Sales Representative", "HireDate": "1998-01-02 00:00:00", "BirthDate": "1970-05-29 00:00:00" },
                              ]
                          },
                          { "EmployeeID": 13, icon: '../../images/person.png', "Name": "Chris Ferguson", "Country": "Canada", "Title": "Sales Representative", "HireDate": "2009-05-03 00:00:00", "BirthDate": "1967-09-19 00:00:00" },
                          { "EmployeeID": 14, icon: '../../images/person.png', "Name": "Antoni Brooke", "Country": "USA", "Title": "Sales Representative", "HireDate": "2010-05-03 00:00:00", "BirthDate": "1985-09-19 00:00:00" },
                      ]
                  }
            ];

            // prepare the data
            var source =
            {
                dataType: "json",
                dataFields: [
                    { name: 'EmployeeID', type: 'number' },
                    { name: 'Name', type: 'string' },
                    { name: 'Country', type: 'string' },
                    { name: 'City', type: 'string' },
                    { name: 'Address', type: 'string' },
                    { name: 'Title', type: 'string' },
                    { name: 'icon', type: 'string' },
                    { name: 'HireDate', type: 'date' },
                    { name: 'children', type: 'array' },
                    { name: 'expanded', type: 'bool' },
                    { name: 'BirthDate', type: 'date' }
                ],

                hierarchy:
                {
                    root: 'children'
                },
                id: 'EmployeeID',
                localData: employees
            };

            var dataAdapter = new $.jqx.dataAdapter(source);
            // create Tree Grid
            $("#treeGrid").jqxTreeGrid(
            {
                width: 660,
                source: dataAdapter,
                sortable: true,
                icons: true,
                ready: function () {
                    $("#treeGrid").jqxTreeGrid('expandRow', '2');
                },
                columns: [
                  {
                      text: 'Name', dataField: 'Name', width: 180,
                      renderer: function (text, align, height) {
                          return "<div style='margin: 5px; margin-top: 7px;'><img width='16' height='16' style='float: left;' src='../../images/card.png'/><span style='margin-left: 4px; float: left;'>Name</span><div style='clear: both;'></div></div>";
                      }
                  },
                  {
                      text: 'Job Title', dataField: 'Title', width: 200,
                      renderer: function (text, align, height) {
                          return "<div style='margin: 5px; margin-top: 7px;'><img width='16' height='16' style='float: left;' src='../../images/administrator.png'/><span style='margin-left: 4px; float: left;'>Job Title</span><div style='clear: both;'></div></div>";
                      }
                  },
                  {
                      text: 'Birth Date', dataField: 'BirthDate', cellsFormat: 'd', width: 120,
                      renderer: function (text, align, height) {
                          return "<div style='margin: 5px; margin-top: 7px;'><img width='16' height='16' style='float: left;' src='../../images/balloons.png'/><span style='margin-left: 4px; float: left;'>Birth Date</span><div style='clear: both;'></div></div>";
                      }
                  },
                  {
                      text: 'Country', dataField: 'Country',
                      renderer: function (text, align, height) {
                          return "<div style='margin: 5px; margin-top: 7px;'><img width='16' height='16' style='float: left;' src='../../images/earth.png'/><span style='margin-left: 4px; float: left;'>Country</span><div style='clear: both;'></div></div>";
                      },               
                      cellsRenderer: function (rowKey, dataField, value, data) {
                          var imgString = "<div><img width='16' height='16' style='float: left;' src='../../images/" + value.toLowerCase() + ".png'/>";
                          switch (value) {
                              case "USA":
                                  value = "United States";
                                  break;
                              case "UK":
                                  value = "United Kingdom";
                                  break;
                          }
                          var countryName = "<span style='margin-left: 4px; float: left;'>" + value + "</span><div style='clear: both;'></div></div>";
                          return imgString + countryName;
                      }
                  }
                ]
            });
        });
    </script>
</head>
<body class='default'>
    <div id="treeGrid">
    </div>
</body>
</html>
